package JVM.chapter02;

/**
 * 类加载器子系统过程：
 *  1. loading   //todo loading阶段
 *      ->
 *  2. Verify(验证) -> prepare(准备) -> resolve(解析)   //todo linking阶段
 *      ->
 *  3. initialization(初始化)    //todo 初始化阶段
 *
 *
 */
public class ClassInitialization {
    private static int num = 2;

    static {
        num = 3;

        // todo 第二步
        size = 20;
    }

    // todo 第一步
    private static int size = 10;

    public static void main(String[] args) {
        System.out.println(num);

        /**
         *  输出 size = 20
         *  因为ClassInitialization这个类, 在 linking阶段的 prepare时，
         *      会给 该类的变量赋一个初始值0
         */

        System.out.println(size);
    }
}
